package com.jboost.modules.app.dto;

import lombok.Builder;
import lombok.Data;

import java.util.List;
import java.util.Map;
@Builder
public class GCOrderReq {
    /**
     * op : data_create
     * data : {"formName":"谷仓发货","_id":"5b237267b22ab14884086cc9","appId":"63f092b0083f3100080286ac","entryId":"64704bb763b7d2000849daf7","creator":{"name":"Peter","username":"peter","status":1,"type":0},"updater":{"name":"Peter","username":"peter","status":1,"type":0},"deleter":{"name":"Peter","username":"peter","status":1,"type":0},"createTime":"2018-01-01T10:10:10.000Z","updateTime":"2018-01-01T10:10:10.000Z","deleteTime":"2018-01-01T10:10:10.000Z","order_code":"Peter","reference_no":"Peter","platform":"Peter","order_status":"Peter","shipping_method":"Peter","fba_shipment_id":"Peter","fba_shipment_id_create_time":"2018-01-01T10:10:10.000Z","_widget_1685087651130":"Peter","tracking_no":"Peter","warehouse_code":"Peter","wp_code":"Peter","order_weight":10,"order_desc":"Peter","date_create":"2018-01-01T10:10:10.000Z","date_shipping":"2018-01-01T10:10:10.000Z","date_modify":"2018-01-01T10:10:10.000Z","abnormal_problem_reason":"Peter","estimated_arrival_date":"2018-01-01T10:10:10.000Z","estimated_arrival_time":"2018-01-01T10:10:10.000Z","consignee_country_code":"Peter","consignee_country_name":"Peter","consignee_state":"Peter","consignee_city":"Peter","consignee_district":"Peter","consignee_address1":"Peter","consignee_address2":"Peter","consignee_address3":"Peter","consignee_zipcode":"Peter","consignee_doorplate":"Peter","consignee_company":"Peter","consignee_name":"Peter","consignee_last_name":"Peter","consignee_phone":"Peter","consignee_email":"Peter","age_detection":"Peter","lift_gate":"Peter","items":[{"product_sku":"Peter","quantity":10,"transaction_id":"Peter","item_id":"Peter","fba_product_code":"Peter","label_replacement_qty":10,"hs_code":"Peter","product_declared_value":10}],"total_fee":10,"shipping":10,"opf":10,"fsc":10,"dt":10,"otf":10,"currency_code":"Peter","order_box_info":[{"border_code":"Peter","box_no":"Peter","box_mark":"Peter","fba_box_mark":"Peter","ob_length":10,"ob_width":10,"ob_height":10,"ob_weight":10,"ob_add_time":"2018-01-01T10:10:10.000Z","tracking_number":"Peter","product_barcode":"Peter","ob_qty":10}],"s_name":"Peter","s_phone":"Peter","v_ioss_number":"Peter","v_pid_number":"Peter","v_recipient_eori":"Peter","v_recipient_vat":"Peter","v_shipper_eori":"Peter","v_shipper_vat":"Peter","v_recipient_vat_country":"Peter","v_recipient_eori_country":"Peter","v_shipper_company_name":"Peter","vas_logistics_recommendation_option":"Peter","payment_time":"2018-01-01T10:10:10.000Z","is_warehouse_packing":"Peter","t_reference_id":"Peter","t_seller_name":"Peter","t_fba_warehouse_code":"Peter","property_label":"Peter","customer_package_requirement":"Peter","_widget_1685087651230":10}
     */

    private Map<String, Object> op;

    @Data
    @Builder
    public static class GcOrderInsert {
        private Map<String, Object> order_code;
        private Map<String, Object> reference_no;
        private Map<String, Object> platform;
        private Map<String, Object> order_status;
        private Map<String, Object> shipping_method;
        private Map<String, Object> fba_shipment_id;
        private Map<String, Object> fba_shipment_id_create_time;
        private Map<String, Object> _widget_1685087651130;
        private Map<String, Object> tracking_no;
        private Map<String, Object> warehouse_code;
        private Map<String, Object> wp_code;
        private Map<String, Object> order_weight;
        private Map<String, Object> order_desc;
        private Map<String, Object> date_create;
        private Map<String, Object> date_shipping;
        private Map<String, Object> date_modify;
        private Map<String, Object> abnormal_problem_reason;
        private Map<String, Object> estimated_arrival_date;
        private Map<String, Object> estimated_arrival_time;
        private Map<String, Object> consignee_country_code;
        private Map<String, Object> consignee_country_name;
        private Map<String, Object> consignee_state;
        private Map<String, Object> consignee_city;
        private Map<String, Object> consignee_district;
        private Map<String, Object> consignee_address1;
        private Map<String, Object> consignee_address2;
        private Map<String, Object> consignee_address3;
        private Map<String, Object> consignee_zipcode;
        private Map<String, Object> consignee_doorplate;
        private Map<String, Object> consignee_company;
        private Map<String, Object> consignee_name;
        private Map<String, Object> consignee_last_name;
        private Map<String, Object> consignee_phone;
        private Map<String, Object> consignee_email;
        private Map<String, Object> age_detection;
        private Map<String, Object> lift_gate;
        private Map<String, Object> total_fee;
        private Map<String, Object> shipping;
        private Map<String, Object> opf;
        private Map<String, Object> fsc;
        private Map<String, Object> dt;
        private Map<String, Object> otf;
        private Map<String, Object> currency_code;
        private Map<String, Object> s_name;
        private Map<String, Object> s_phone;
        private Map<String, Object> v_ioss_number;
        private Map<String, Object> v_pid_number;
        private Map<String, Object> v_recipient_eori;
        private Map<String, Object> v_recipient_vat;
        private Map<String, Object> v_shipper_eori;
        private Map<String, Object> v_shipper_vat;
        private Map<String, Object> v_recipient_vat_country;
        private Map<String, Object> v_recipient_eori_country;
        private Map<String, Object> v_shipper_company_name;
        private Map<String, Object> vas_logistics_recommendation_option;
        private Map<String, Object> payment_time;
        private Map<String, Object> is_warehouse_packing;
        private Map<String, Object> t_reference_id;
        private Map<String, Object> t_seller_name;
        private Map<String, Object> t_fba_warehouse_code;
        private Map<String, Object> property_label;
        private Map<String, Object> customer_package_requirement;
        private Map<String, Object> _widget_1685087651230;
        private Map<String, Object> items;
        private Map<String, Object> order_box_info;
    }

    @Builder
    @Data
    public static class ItemsBean {
        /**
         * product_sku : Peter
         * quantity : 10
         * transaction_id : Peter
         * item_id : Peter
         * fba_product_code : Peter
         * label_replacement_qty : 10
         * hs_code : Peter
         * product_declared_value : 10
         */

        private Map<String, Object> product_sku;
        private Map<String, Object> quantity;
        private Map<String, Object> transaction_id;
        private Map<String, Object> item_id;
        private Map<String, Object> fba_product_code;
        private Map<String, Object> label_replacement_qty;
        private Map<String, Object> hs_code;
        private Map<String, Object> product_declared_value;

    }

    @Builder
    @Data
    public static class OrderBoxInfoBean {
        /**
         * border_code : Peter
         * box_no : Peter
         * box_mark : Peter
         * fba_box_mark : Peter
         * ob_length : 10
         * ob_width : 10
         * ob_height : 10
         * ob_weight : 10
         * ob_add_time : 2018-01-01T10:10:10.000Z
         * tracking_number : Peter
         * product_barcode : Peter
         * ob_qty : 10
         */

        private Map<String, Object> border_code;
        private Map<String, Object> box_no;
        private Map<String, Object> box_mark;
        private Map<String, Object> fba_box_mark;
        private Map<String, Object> ob_length;
        private Map<String, Object> ob_width;
        private Map<String, Object> ob_height;
        private Map<String, Object> ob_weight;
        private Map<String, Object> ob_add_time;
        private Map<String, Object> tracking_number;
        private Map<String, Object> product_barcode;
        private Map<String, Object> ob_qty;

    }
}
